package com.ruoyi.core.service;

import com.ruoyi.core.domain.ClientProductUser;
import com.ruoyi.core.domain.custombean.ClientProductCookieQueryResult;
import com.ruoyi.core.vo.ClientProductUserCreateOperationVO;
import com.ruoyi.core.vo.ClientProductUserUpdateOperationVO;

import java.util.List;
import java.util.Map;

/**
 * client-product-userService接口
 *
 * @author ruoyi
 * @date 2020-09-28
 */
public interface IClientProductUserService {
    /**
     * 查询client-product-user
     *
     * @param id client-product-userID
     * @return client-product-user
     */
    public ClientProductUser selectClientProductUserById(Long id);

    /**
     * 查询client-product-user列表
     *
     * @param clientProductUser client-product-user
     * @return client-product-user集合
     */
    public List<ClientProductUser> selectClientProductUserList(ClientProductUser clientProductUser);

    /**
     * 新增client-product-user
     *
     * @param clientProductUserCreateVO client-product-user
     * @return 结果
     */
    public int add(ClientProductUserCreateOperationVO clientProductUserCreateVO);

    /**
     * 修改client-product-user
     *
     * @param clientProductUserUpdateVO client-product-user
     * @return 结果
     */
    public int update(ClientProductUserUpdateOperationVO clientProductUserUpdateVO);

    /**
     * 批量删除client-product-user
     *
     * @param ids 需要删除的client-product-userID
     * @return 结果
     */
    public int deleteClientProductUserByIds(Long[] ids);

    /**
     * 删除client-product-user信息
     *
     * @param id client-product-userID
     * @return 结果
     */
    public int deleteClientProductUserById(Long id);

    List<ClientProductUser> findByProductId(Long productId);

    ClientProductUser getClientProductUserRandomStrategy(Long productId);

    ClientProductUser getClientProductUserRandomStrategyByUserId(Long productId,Long userId,boolean needCookie);

    List<ClientProductCookieQueryResult> productList();

    ClientProductUser getClientProductUserRandomStrategyByJsPlugin();
}
